Routing traffic in large networks is a complex management task. Such networks are commonly made up of multiple autonomous systems (AS). An AS is a group of one or more networks under mutual administration that share the same routing methodology. An AS uses an internal gateway protocol to distribute routing information across the nodes of the network. This routing information is then used by each node to route data packets within the AS. The AS also uses an external gateway protocol to distribute routing information to other ASs to assist in routing data packets outside their originating AS.
Network administrators can control the routing of network traffic based on criteria such as the IP address range of a data packet. These criteria are associated with the data packets at the location where the packet's route originated, and follows the packet along its route as it is propagated within the AS via the interior gateway protocol. The criteria can be used to identify packets so as to route them in accordance with a set of routing rules held in a routing table of a given router. Some examples of criteria used in routing rules include AS-path, BGP (border gateway protocol) community, router interface, IP (internet protocol) address range, length, metric, MPLS (multi protocol label switching) label, route type or tag. In many networks, it is desirable to route network traffic depending on its destination. Two options are commonly used to influence the route propagation for a specific network, the first involves matching the IP address range of a packet against an IP address prefix list and the second involves matching a tag value which holds data identifying the originating subnet of the traffic. However, prefix lists are difficult to maintain if there are many subnets within an AS. Using tags is difficult where multiple subnets are directly connected to a single router and while different tag values can be used for static routes that are redistributed using an IGP, tags work less well with dynamic routes.